The A# programming language has support for object-oriented and functional programming styles. Both types and functions are first class values that can be manipulated with a range of flexible and composable primitives and user programs. The A# language design places particular emphasis on compilation for efficient machine code and portability.